﻿using Volo.Abp.PermissionManagement;
using Volo.Abp.SettingManagement;
using Volo.Abp.Account;
using Volo.Abp.Identity;
using Volo.Abp.AutoMapper;
using Volo.Abp.FeatureManagement;
using Volo.Abp.Modularity;
using Volo.Abp.TenantManagement;
using Microsoft.Extensions.DependencyInjection;
using ERP.ERPSystem.HumanResources;
using ERP.ERPSystem.ProductionSystem;
using ERP.ERPSystem.WarehouseManagement;
using ERP.Application.ERPSystem.WarehouseManagement;
using ERP.ERPSystem.DataAnalysis;

namespace ERP;

[DependsOn(
    typeof(ERPDomainModule),
    typeof(ERPApplicationContractsModule),
    typeof(AbpPermissionManagementApplicationModule),
    typeof(AbpFeatureManagementApplicationModule),
    typeof(AbpIdentityApplicationModule),
    typeof(AbpAccountApplicationModule),
    typeof(AbpTenantManagementApplicationModule),
    typeof(AbpSettingManagementApplicationModule),
    typeof(AbpAutoMapperModule)
    )]
public class ERPApplicationModule : AbpModule
{
    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        var services = context.Services;
        
        Configure<AbpAutoMapperOptions>(options =>
        {
            options.AddMaps<ERPApplicationModule>();
        });

        // 手动注册服务
        services.AddTransient<InterviewMenagementIServices, InterviewMenagementServices>();
        services.AddTransient<IProductionWorkOrderMainServices,ProductionWorkOrderMainService>();
        services.AddTransient<IProductionDispatchMainServices, ProductionDispatchMainServices>();
        services.AddTransient<IIncomingInspectionServices, IncomingInspectionServices>();
        services.AddTransient<IHolidaysSetServices, HolidaysSetServices>();
        services.AddTransient<ISupplierReturnsServices, SupplierReturnsServices>();
        services.AddTransient<IShiftplanningService, ShiftplanningService>();
        services.AddTransient<IProcessServices, ProcessServices>();
        services.AddTransient<ITeamSetServices, TeamSetServices>();
        services.AddTransient<IInboundCmparisonServices, InboundCmparisonServices>();
    }
}
